package com.mifengkong.frtools.jsbridge.webview;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.webkit.CookieManager;
import android.webkit.WebSettings;

import com.mifengkong.frtools.jsbridge.BridgeWebView;


/**
 * Created by jack on 2017/9/27
 */

public class FRJSBridgeWebView extends BridgeWebView {

    public FRJSBridgeWebView(Context context) {
        this(context, null);
    }

    public FRJSBridgeWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initWebView();
    }

    public FRJSBridgeWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initWebView();
    }

    @SuppressLint("SetJavaScriptEnabled")
    private void initWebView() {
        WebSettings webSettings=getSettings();
        webSettings.setJavaScriptEnabled(true);     //让WebView支持JavaScript
//        webSettings.setDomStorageEnabled(true);     //启用H5 DOM API （默认false）
//        webSettings.setDatabaseEnabled(true);           //启用数据库api（默认false）可结合 setDatabasePath 设置路径
        webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);     //设置缓存模式,一共有四种模式
        webSettings.setAppCacheEnabled(true);       //启用应用缓存（默认false）可结合 setAppCachePath 设置缓存路径
//        webSettings.setUserAgentString(usere);
//        webSettings.setAppCacheMaxSize(1);        //已过时，高版本API上，系统会自行分配
//        webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);         //提高渲染的优先级
        webSettings.setUseWideViewPort(true);       //将图片调整到适合webview的大小
        webSettings.setLoadWithOverviewMode(true);      // 缩放至屏幕的大小
        webSettings.setSupportZoom(true);       //支持缩放，默认为true
        webSettings.setBuiltInZoomControls(true);
//        webSettings.setBuiltInZoomControls(true);       //设置内置的缩放控件（若SupportZoom为false，该设置项无效）
//        webSettings.setDisplayZoomControls(false);      //隐藏原生的缩放控件
//        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);      //支持内容重新布局
//        webSettings.supportMultipleWindows();       //支持多窗口
        webSettings.setAllowFileAccess(true);       //设置可以访问文件
//        webSettings.setNeedInitialFocus(true);      //当webview调用requestFocus时为webview设置节点
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);         //支持通过JS打开新窗口
        webSettings.setLoadsImagesAutomatically(true);          //自动加载图片
        webSettings.setDefaultTextEncodingName("UTF-8");        //设置编码格式
        webSettings.setBlockNetworkImage(false);
        webSettings.setDomStorageEnabled(true);//开启DOM storage API功能
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);   //
        }

        //支持定位的
        webSettings.setDatabaseEnabled(true);
        String dir =getContext().getDir("database", Context.MODE_PRIVATE).getPath();
        webSettings.setGeolocationEnabled(true);
        webSettings.setAppCachePath(dir);
        webSettings.setDomStorageEnabled(true);//可以使用localStorage
        webSettings.setBuiltInZoomControls(true);

        String appCachePath = getContext().getCacheDir().getAbsolutePath();
        webSettings.setGeolocationDatabasePath(appCachePath);
        //支持拍照和图片选择的
        webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);

        CookieManager.getInstance().setAcceptCookie(true);
    }
}